<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>

<h2>Monaco Diff Editor Sample</h2>
<div id="container" style="width:800px;height:600px;border:1px solid grey"></div>

<script src="../node_modules/monaco-editor/min/vs/loader.js"></script>
<script>
	require.config({ paths: { 'vs': '../node_modules/monaco-editor/min/vs' }});

	require(['vs/editor/editor.main'], function() {
		var diffEditor = monaco.editor.createDiffEditor(document.getElementById('container'));

		Promise.all([xhr('original.txt'), xhr('modified.txt')]).then(function(r) {
			var originalTxt = r[0].responseText;
			var modifiedTxt = r[1].responseText;

			diffEditor.setModel({
				original: monaco.editor.createModel(originalTxt, 'javascript'),
				modified: monaco.editor.createModel(modifiedTxt, 'javascript'),
			})
		});
	});
</script>
<script>
	function xhr(url) {
		var req = null;
		return new Promise(function(c,e) {
			req = new XMLHttpRequest();
			req.onreadystatechange = function () {
				if (req._canceled) { return; }

				if (req.readyState === 4) {
					if ((req.status >= 200 && req.status < 300) || req.status === 1223) {
						c(req);
					} else {
						e(req);
					}
					req.onreadystatechange = function () { };
				}
			};

			req.open("GET", url, true );
			req.responseType = "";

			req.send(null);
		}, function () {
			req._canceled = true;
			req.abort();
		});
	}
</script>
</body>
</html>
